package com.dfiov.cloud.msmtools.mapper.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class OptUserDo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户姓名
     */
    private String realName;

    /**
     * 性别
     */
    private String sex;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     *  头像url
     */
    private String imgUrl;

    /**
     * 组织编码
     */
    private String orgCode;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    @JsonIgnore
    private String password;

    /**
     * 锁定
     */
    private boolean locked;

    /**
     * 激活
     */
    private boolean active;

    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date expireTime = new Date();

    /**
     * 账户锁定次数，最多5次进入锁定
     */
    private int accountLockCount = 0;

    /**
     * 创建方式:0手动，1自动勾选，导入
     */
    private boolean leadIn;

    /**
     * 过期密码
     */
    @JsonIgnore
    private String oldPasswords;

    /**
     * 账户上一次修改密码的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date passwordLastChange = new Date();


    /**
     * 主键ID自动生成策略
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    protected String id;

    /**
     * 创建人 登录帐号
     */
    protected String createdBy;

    /**
     * 修改人 登录的帐号
     */
    protected String updateBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    protected Date createdDate;

    /**
     * 修改时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    protected Date updatedDate;

    /**
     * 删除标志 0 - 正常 1 - 删除
     */
    @JsonIgnore
    private Integer delFlag=0;

    /**
     * 版本号
     */
    @JsonIgnore
    protected Integer version;
}
